![ライブ動画配信に使ったAmazon WorkSpaces環境でイメージとバンドルを作成した話](https://devio2023-media.developers.io/wp-content/uploads/2019/05/amazon-workspaces.png)
ライブ動画配信に使ったAmazon WorkSpaces環境でイメージとバンドルを作成した話
はじめに
清水です。先日、Amazon WorkSpaces上にZoomミーティング + OBS Studioな環境を準備、YouTube Liveへのライブ動画配信を行いました。AWS re:Invent 2020 Keynoteの非公式副音声配信ですね。
弊社で開催したウェビナーイベント、re:Growth 2020の配信も終わり、当面このWorkSpaces環境の出番はなさそうです。WorkSpacesのランニングコスト(AutoStopで停止していても、一月あたり多少のコストが発生)も考慮し、環境としてはいちど削除しておくこととしました。しかし、必要になったときに再度一からセットアップするのは少し手間でもあります。ということでAmazon WorkSpacesのカスタムイメージならびにカスタムバンドルを作成し、すぐに必要な環境のWorkSpacesを起動できるようにしておきました。この手順などをまとめておきたいと思います。
WorkSpacesのイメージとバンドルについては以下などを参照しておきましょう。
また実際のイメージとバンドルの作成にあたっては公式ドキュメントの以下の箇所を参照しました。
要件の確認とImage Checkerの実行
まずはWindowsでカスタムイメージを作成するための要件を確認しておきます。
ざっと確認したこととしては、ディスク容量まわりです。Dドライブは10GB未満であること、またCドライブには12GB以上の空き容量があることを確認しました。(この中で、保存しておきたいファイルはS3などへ退避、不要なファイルは削除などの対応をしています。)また今回WorkSpacesは暗号化はしていません。
アプリケーションとユーザプロファイルがMicrosoft Sysprepと互換性があるか、については、正直なところ不明です。今回のライブ動画配信用WorkSpacesですと、肝となるのはOBS StuidoとZoomアプリかと思います。これらは実際にイメージならびにバンドルを作成後、そのバンドルからWorkSpacesを新たに起動して確認することとしました。
そのほか、念のためYouTube LiveのストリーミングキーやCloudBerry Explorer/WinSCPに設定していたAWSクレデンシャル情報については削除しておきました。
Windows WorkSpacesがイメージ作成要件を満たしているか確認するツールであるImage Checkerを実行します。マネジメントコンソールからWorkSpacesを再起動し、再起動が完了したらWorkSpacesにサインイン(接続)します。
スタートメニューから"Windows システムツール" > "コマンドプロンプト" でコマンドプロンプトを開きます。
以下の各行を入力し、Enterキーでそれぞれ(1行ごと)実行します。
c: cd C:\Program Files\Amazon ImageChecker.exe
3つ目のImageChecer.exeの実行で、以下ダイアログが出現します。[はい]で進めます。
Image Checker Toolが起動します。[Run]で実行します。
それぞれの項目がチェックされ、問題なければPASSED
になっていきます。
Validation successful.
が表示されればCheck完了です。Image Checkerとコマンドプロンプトを終了させ、WorkSpacesから切断します。
カスタムイメージの作成
続いてWorkSpacesのカスタムイメージを作成します。マネジメントコンソールのWorkSpacesの項目、該当のWorkSpacesを選択してアクションから「イメージの作成」を選択します。
ダイアログの内容を確認して[次へ]で進みます。
イメージ名と説明を入力して、[イメージの作成]ボタンを押下します。
マネジメントコンソールのイメージの項目を確認すると、作成中であることがわかります。ステータスがAvailableになればイメージ作成完了です。これには少し(数十分程度)時間がかかります。
こちらはイメージ作成完了後、詳細を表示させたものです。
カスタムバンドルの作成
カスタムイメージが作成できたら、これをもとにカスタムバンドルを作成します。WorkSpaceマネジメントコンソール、イメージの項目からバンドルを作成するイメージを選択、アクションで「バンドルの作成」を選択します。
現れるダイアログにバンドル名、説明を入力します。バンドルタイプは適切なものを選択します。今回はPowerProを選んでいます。ルートボリュームサイズとユーザボリュームサイズについても入力します。
なお、イメージ作成前のWorkSpacesより小さい値は指定できないようです。今回、ルートボリュームが175GBのWorkSpacesから作成したイメージで80GBのバンドルを作成しようとしてみましたが、以下のように警告が表示され、[バンドルの作成]ボタンが押せない状態となってしまいました。
[バンドルの作成]ボタンからカスタムバンドルを作成します。これはすぐに完了します。完了後にWorkSpacesのマネジメントコンソール、バンドルの項目を見ると作成されたカスタムバンドルが確認できます。
以上でカスタムバンドルの作成完了です。
カスタムバンドルからWorkSpacesを起動
カスタムバンドルが作成できました。念のため、このカスタムバンドルからWorkSpacesを起動して意図した通りにライブ動画配信ができるか(セットアップしたアプリケーションなどが残っているか、意図通りに動作するか、など)確認しておきたいと思います。まずはWorkSpacesの起動です。マネジメントコンソールのWorkSpaceの項目、[WorkSpacesの起動]ボタンから進めます。なおこの段階で正副あったWorkSpaces環境のうち、副の環境はWorkSpacesを削除しました。副用のユーザに新たにWorkSpacesを割り当てる想定です。
起動の途中までは標準のバンドル利用のときと変わりありません。まずはディレクトリを選択します。
ユーザについては、副環境用のユーザをディレクトリから選択しました。
バンドルの選択では、カスタムバンドルでフィルタして該当のバンドルを選択、画面右下の[次のステップ]ボタンで進みます。
WorkSpacesの設定で各項目を適切に設定します。ここも画面右下の[次のステップ]ボタンで進みます。
最後にレビューを行い、問題なければWorkSpacesを起動します。
WorkSpacesの接続はこれまでと変わらず、WorkSpacesクライアントにユーザ名とパスワードを入力して接続します。(Eメールの受信やパスワードの変更はありませんでした。これは同じユーザで2回目以降のWorkSpacesの割り当てだからかと思います。)
動作確認など
実際にカスタムバンドルから立ち上げたWorkSpacesに接続し、ライブ動画配信に必要なアプリケーションがインストールされているか、また動作に問題がないかを確認していきます。
まずWorkSpacesを起動した直後の接続です。以下のようにWindowsのネットワーク設定のダイアログが表示されました。「いいえ」を選択して進みます。
デスクトップのショートカットは残っているようですね。まずはOBS Studioを起動してみます。ちょっと起動に時間がかかって焦りましたが、無事に起動しました。ただしカスタムイメージ/バンドル作成前に設定していたシーンやプロファイルなどはなくなっており、初回起動の状態です。以下のように自動構成ウィザードのダイアログが現れました。
OBS Studioの設定ファイルが格納されているフォルダを確認してみます。(OBS Studioのファイル > 設定フォルダーを表示、一つ上の階層をみます。)以下のように「D:\Users[ユーザ名]\AppData\Roaming」についてはまっさらな状態となっていました。(ここにバックアップ用のobs-studioフォルダやZoomフォルダもあったはずですが、これもありませんね。)
カスタムイメージ作成前はこんな感じでした。
これはドキュメントを確認するとわかるのですが今回使用しているWindows 10 WorkSapcesの場合、D:\Users\ユーザ名配下のファイル(ユーザプロファイル)はカスタムイメージに含まれないそうです。
ただしCドライブについては全体がカスタムイメージに含まれるということで、インストール済みのアプリケーションなどは残っている、ということになりますね。またDドライブ直下にもデータ格納用のフォルダを配置していたのですが、これも残っていないようでした。
ということで、OBS Stuidoのセットアップについては、以下ブログエントにも記載しましたが、「D:\Users[ユーザ名]\AppData\Roaming\obs-studio」のフォルダを別環境からまるっとコピーすることで対応します。WorkSpacesを削除するとしても、この「obs-studioフォルダ」をS3などどこかに保存しておけば、環境の復元が可能となりますね。
今回はChromeブラウザからS3経由でダウンロードしました。なおChromeブラウザについても初期化されており、閲覧履歴(chrome://history)情報などは参照できません。またエクスプローラの「ファイル名拡張子」の表示もリセットされている状態だったので、再度表示されるよう設定しました。
設定済みの「obs-studioフォルダ」を「D:\Users[ユーザ名]\AppData\Roaming\obs-studio」に展開すると、以下のようにOBS Studio設定が復元できました。
続いてZoomアプリです。こちらはデスクトップのショートカットがなくなっていました。スタートメニューから検索しても出てきません。おや……?と思い、まだカスタムイメージ取得の状態で残っている(カスタムバンドルから起動ではなく、標準バンドルから起動してセットアップした)WorkSpacesを確認してみると、exeファイルは「D:\Users[ユーザ名]\AppData\Roaming\Zoom\bin\Zoom.exe」に存在していました。Dドライブのユーザフォルダ配下なので、これはカスタムイメージに含まれていなかった、ということになりますね。ということで今回の状況ではZoomアプリについては手動でのインストールが必要となります。(確認していませんが、ZoomアプリをCドライブにインストールすることができれば、カスタムイメージに含めることもできるかと思います。)
なお、Zoomアプリ自体が消えてしまっているので、当然Zoomアプリ上の設定(画面レイアウト、ミーティング参加時のビデオ/マイクのオフ設定、ビデオ以外の参加者を非表示にする設定、など)もリセットされることとなります。(これは個人的な備忘録として、以前セットアップしていた内容を本ブログエントリ最後にまとめておきます。)
そのほかアプリケーションについては、CloudBerry Explorere、WinSCPともに起動することができました。これらはカスタムイメージ作成前にAWSクレデンシャル(などアカウント情報)は削除しておいたので、これらを登録してから使用することとします。
上記でライブ動画配信に必要な環境はひととおり確認できました。Zoomについてはインストールならびに設定を行い、OBS Studioについてはフォルダコピーで設定を復元、YouTube Liveのストリーミングキーなどを確認した上で配信を行い最終的な動作チェックとします。
問題なさそうです!
まとめ
ZoomとOBS Studioの環境をセットアップし、YouTube Liveの動画配信にしようしたAmazon WorkSpacesからカスタムイメージ、カスタムバンドルを作成、そのカスタムバンドルから新たなWorkSpacesを起動してみました。OBS Studioについては想定どおり、設定ファイル(設定フォルダ丸ごと)のコピーで対応が可能でした。ただZoomアプリのインストール先がDドライブだったことで、アプリ自体が消えてしまうことは想定外でした。(てっきりCドライブにインストールされているかと。)いったんは本エントリでまとめたとおりZoomアプリについては再度インストールして設定することとしますが、アプリのインストール先変更や設定の簡略化についても確認しておきたいと思いました。
備忘録: Zoomアプリの設定
Amazon WorkSpacesのカスタムイメージ/バンドルとは直接関係しませんが、Zoomアプリについてはバイナリファイルが削除され、設定ファイルも残っていない状態でしたので、ここに設定内容を備忘録として記録(スクリーンショット添付)しておきます。Zoomについても設定ファイルのコピーなどで対応できれば良いのですが、こちらの確認もしておきたいと思います。(「D:\Users[ユーザ名]\AppData\Roaming\Zoom」フォルダでいけるかもしれない??)